The baserom uses a framework of custom objects to allow you to toggle or activate some simple UberASM codes that are in the baserom, most of which are very basic utility features or simple state changes. They are activated simply by inserting a custom extended object into whichever levels you want with no limit. These objects work alongside any level UberASM you may want to use as well.
The tables below detail the objects available in the baserom and what their purpose is. Each object has a unique ID number that corresponds to its "extended object" value that is to be used when inserting it as a Custom Object in Lunar Magic. Simply make note of the ID(s) of object(s) you would like you use and insert them in your level manually.
Earlier versions of the baserom may have fewer objects or different ID numbers.
The following objects activate simple UberASM that is included in the baserom.
ID | Object | Description |
---|---|---|
98 | Free Vertical Scroll | Makes the camera follow Mario up and down. |
99 | Lock Horizontal Scroll | Prevents the camera from scrolling left or right. |
9A | Invisible Mario | Makes Mario invisible. |
9B | No Power-ups | Prevent Mario from collecting any power-ups, including to the item box. Can be used to reset power-up state. |
9C | Enable 8-frame Cape Float | Apply a consistent 8 frame counter after the input is registered to adjust Mario's falling speed with cape. |
9D | Remove Cape Float Delay | Set the delay before Mario starts floating with cape to zero frames. |
9E | Disable Cape Flight | Prevents Mario from ever entering flight with cape. |
9F | Death on Power-up Loss | Losing a power up will kill Mario instantly. Makes all hurt blocks death blocks and all damaging sprites lethal. |
A0 | Press L & R To Die | Kills the player if L and R are pressed. Useful for a quick reset. |
A1 | Disable Screen Shake | Stops all Vanilla sources of Layer 1 screen shake. |
A2 | Disable Spin Jump | Disables the A Button, therefore no spin jumping. |
Inserting these objects into your level to override the default settings of the retry system or even change the retry settings between sublevels.
ID | Object | Description |
---|---|---|
B0 | Set Retry Type to Instant | Make the retry skip using prompt and restart instantly after dying. |
B1 | Set Retry Type to Prompt | Set the retry system to use a prompt that says "Retry" in the middle of the screen. |
B2 | Set Retry Type to Vanilla | Set the retry system back to using Vanilla death routine. |
B3 | Bottom Left Retry Prompt | Move the "Retry" prompt to the bottom left if Prompt Retry is active (by default it's in the middle). |
B4 | No Power Ups from Midways | Disable gaining a power-up (mushroom) from a midway point. |
BA | Display Sprite Timer | Show the level timer from the Retry System's sprite status bar. |
BB | Display Coins Counters | Show the coin counters from the Retry System's sprite status bar. |
BC | Display Item Box | Show the item box from the Retry System's sprite status bar. |
You can use these objects to start the player in various states when they enter the level at any point.
ID | Object | Description |
---|---|---|
C0 | Start with a Mushroom | Have the player start the level with a Mushroom. |
C1 | Start with Cape | Have the player start the level with a Cape. |
C2 | Start with Fire Flower | Have the player start the level with a Fire Flower. |
C3 | Start with Star Power | Have the player start the level with Star Power. Not infinite, lasts as long as a normal Star. |
C4 | Start on Green Yoshi | Have the player start the level on a Green Yoshi. |
C5 | Start on Yellow Yoshi | Have the player start the level on a Yellow Yoshi. |
C6 | Start on Blue Yoshi | Have the player start the level on a Blue Yoshi. |
C7 | Start on Red Yoshi | Have the player start the level on a Red Yoshi. |
C8 | Start in Spin Jump State | Have the player start the level spinning (most useful when Mario is in the air). |
C9 | Start in OFF State | Starts the level with the ON/OFF state in the OFF state. |
CA | Start in ON State | Starts the level with the ON/OFF state in the ON state. |
These objects control things in the baserom that have FreeRAM flags to toggle their functionality.
ID | Object | Description |
---|---|---|
D0 | Toggle Statusbar | Placing the object hides the Layer 3 statusbar. |
D1 | Toggle Screen Scroll | Disable the effects of a patch that prevents scrolling the screen with L or R. |
D2 | Toggle Spin Jump Fireballs | Prevent Mario from shooting fireballs while spin jumping. |
D3 | Toggle Block Duplication | Disable the effects of a patch that prevents block duplication. |
D4 | Toggle Springboard Fixes | Disable the effects of a patch that prevents re-grabbing kicked springboards and them zeroing your speed when grabbed. (Enabling spring midairs). |
D5 | Toggle Cape Turnaround | Disable the effects of the patch that makes turning around with cape consistent on button press. |
D6 | Toggle Rope Glitch | Toggle off the fixes for the air climb rope glitch. |
Due to how the memory works for the power-up or Yoshi states you can only have one of each of those objects active at a time, you can't have Cape and Flower or two Yoshi objects.
To insert a custom UberASM object, make note of the custom ID value from the tables above.
Next, open the "Add Object Manual (hex)" window while in Lunar Magic's "Layer 1 editing" mode, either from the "Edit → Insert manual..." menu action, or by pressing the Insert key in this mode.
In the window that appears, type the ID value for the UberASM Object of your choice into the "Size/Type/Ext" field, leaving the other fields at zero (0), and press OK to insert.
Multiple custom extended objects can be inserted by repeating the steps above for each UberASM object.
When inserted, custom extended objects will look like a pair of garbage tiles in Lunar Magic, but these objects won't actually appear in game.
An object may occasionally use an exit-enabled (door) tile which may display a warning depending on your Lunar Magic settings. Those warnings can be safely ignored as they aren't actually doors.